package com.jrui.www.t7manager;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.jrui.www.t7manager.setting.T7SettingActivity;
import com.jrui.www.t7manager.util.ActivityManagerUtil;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends BaseActivityWithManager {
    private List<String> data;
    //    如果这个 activity 被回收 视为程序终止 程序终止时是意味着销毁所有activity  PS：用户点击返回键 会自动销毁当前的activity
    //    1. 用户在这个界面点击返回键 直接终止程序 执行断电

    //    2. 被系统回收 需要判断当前是否有活跃的activity(是否能检测当前App正在屏幕上显示？) 如果没有 那么也视为直接终止 需要执行断电
    //    3.用户点击home键 默认意图为不主动断电

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this)
                .setTitle("视频模块")
                .setMessage("是否确认打开视频模块")
                .setPositiveButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
//                            TODO 执行断电
                        ActivityManagerUtil.getInstance().AppExit(MainActivity.this);
                    }
                })
                .setNegativeButton("打开", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        //        加载xml布局文件
                        setContentView(R.layout.activity_main);

                        //        适配器用来将数据渲染到ListView中
                        MainActivityCfg cfg = MainActivityCfg.getInstance();
                        data = new ArrayList<String>(cfg.getRouter().keySet());
                        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                                MainActivity.this, android.R.layout.simple_list_item_1, data);
                        ListView listView = (ListView) findViewById(R.id.list_view);
                        listView.setAdapter(adapter);

                        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                            @Override
                            public void onItemClick(AdapterView<?> parent, View view,
                                                    int position, long id) {
                                //传递数据
                                Intent intent = null;
                                intent = new Intent(MainActivity.this, T7SettingActivity.class);
                                intent.putExtra("barName", data.get(position));
                                startActivity(intent);
                            }
                        });
                    }
                }).create();
        alertDialog.show();
        //        调用父级的方法
        super.onCreate(savedInstanceState);
        //        TODO 这个activity 新建时自动执行 主板上电
        //        启动主程序肯定需要读取板卡的配置 或者是校验是否连接至板卡
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        //        后台主动销毁当前activity 需要断电 和销毁整个程序
        //        如果销毁的时候 列表数量大于1 则不执行销毁
        if(ActivityManagerUtil.getInstance().getActivityAmounts()==0){
            //        TODO 断电
            ActivityManagerUtil.getInstance().AppExit(MainActivity.this);
        }
    }

    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK
                && event.getAction() == KeyEvent.ACTION_DOWN) {
            //            弹出对话框
            AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this)
                    .setTitle("退出程序")
                    .setMessage("退出程序将关闭板卡")
                    .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
//                            TODO 执行断电
                            ActivityManagerUtil.getInstance().AppExit(MainActivity.this);
                        }
                    })
                    .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            return;
                        }
                    }).create();
            alertDialog.show();

            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}
